﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace Common.Infrastructure
{
    public interface IServiceCallService
    {
        Task<T> PostExecuteAsync<T>(string serviceCode, string url, object obj = null);

        Task<T> GetExecuteAsync<T>(string serviceCode, string url, Dictionary<string, object> param = null);

        Task<T> GetGetAsync<T>(string serviceCode, string url, Dictionary<string, object> param = null);

        Task<T> PostGetAsync<T>(string serviceCode, string url, object obj = null);

        Task<bool> GetDoAsync(string serviceCode, string url, Dictionary<string, object> param = null);

        Task<bool> PostDoAsync(string serviceCode, string url, object obj = null);

        Task<List<T>> GetListAsync<T>(string serviceCode, string url, Dictionary<string, object> param = null);

        Task<List<T>> PostListAsync<T>(string serviceCode, string url, object obj);

        Task<ApiPagedResult<T>> GetApiPageAsync<T>(string serviceCode, string url, Dictionary<string, object> param = null);

        Task<ApiPagedResult<T>> PostApiPageAsync<T>(string serviceCode, string url, object obj);
    }
}
